// --------------------------------------------------------------------------------------------------------------------
// <copyright file="IRoleInstance.cs" company="AzureContrib (Open source library http://azurecontrib.codeplex.com)">
//   Microsoft Public License (Ms-PL)
// </copyright>
// <summary>
//   Contract for Microsoft Windows Azure RoleInstance
// </summary>
// --------------------------------------------------------------------------------------------------------------------

using System.Collections.Generic;

namespace AzureContrib.WindowsAzure.ServiceRuntime
{
	/// <summary>
	/// Contract for Microsoft Windows Azure RoleInstance
	/// </summary>
	public interface IRoleInstance
	{
		/// <summary>
		/// Gets Microsoft Windows Azure RoleInstance.Id
		/// </summary>
		string Id { get; }

		/// <summary>
		/// Gets Microsoft Windows Azure RoleInstance.UpdateDomain
		/// </summary>
		int UpdateDomain { get; }

		/// <summary>
		/// Gets Microsoft Windows Azure RoleInstance.FaultDomain
		/// </summary>
		int FaultDomain { get; }

		/// <summary>
		/// Gets Microsoft Windows Azure RoleInstance.Role
		/// </summary>
		IRole Role { get; }

		/// <summary>
		/// Gets Microsoft Windows Azure RoleInstance.InstanceEndpoints
		/// </summary>
		IDictionary<string, IRoleInstanceEndpoint> InstanceEndpoints { get; }
	}
}